<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
   



         
        <script>
                /*
                     
                    箭头函数没有自己的this 
                    他的this指向 函数创建的时候  
                    this的指向
               */

                // var _name="global" 
                // var circle={
                //     raduis:10,
                //     outerDarer:function(){
                //         console.log( 2*this.raduis )  //20
                //         var InnerDarer=function(){
                //             console.log( 2*this.raduis )  //NaN
                //         }
                //         InnerDarer()
                //     } 
                // }
                // circle.outerDarer()  //NaN


                // var _name="global" 
                // var circle={
                //     raduis:10,
                //     outerDarer:function(){
                //         console.log( 2*this.raduis )  //20
                //         var InnerDarer=()=>{
                //             console.log( 2*this.raduis )  //20
                //         }
                //         InnerDarer()
                //     } 
                // }
                // circle.outerDarer()  //20

                // function printThis(){
                //     console.log( this )
                //     let print=()=>console.log( this )//[1] [2]
                //     print()
                // }

                // printThis.call([1])
                // printThis.call([2])

                // function printThis(){
                //     let print=()=>console.log( this ) 
                //     print()
                // }

                // printThis.call([1])
                // printThis.call([2])
 

                // 箭头函数你用call bind  apply 去改变 不起作用的
                //一般的函数式起作用的
                var aa='outer'
                let obj={
                    aa:'inner',
                    foo:()=>{
                       console.log(this.aa)
                    },
                    myFun: function() {
                        console.log(this.aa)
                    }
                }
               
                obj.foo() //outer
                obj.foo.call({aa:'wwwwww'}) //outer
                obj.myFun.call({aa:'wwwwww'}) //wwwwww
                

             









        </script>

      
</body>
</html>